//
//  CWIDCardOCR.h
//  CWIDCardOCR
//
//  Created by DengWuPing on 16/11/7.
//  Copyright © 2016年 DengWuPing. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import "CloudwalkCardUtil.h"

/**
 从sampleBuffer中提取帧图片
 @param frameData      帧图片数据
 @param width          图片宽
 @param height         图片高
 */
typedef void(^CWIDCardBufferBlock)(unsigned char * frameData,int width,int height);

/**
 身份证文字信息识别
 
 @param dict       识别结果信息（"name": 姓名
 *			"idNumber": 身份证号码
 *			"gender": 性别
 *			"nation": 民族
 *			"birth": 出生日期
 *			"address": 地址
 *			"province": 省/直辖市
 *			"city":	市/县
 //国徽面识别文字信息
 *			"authority": 签发机关
 *			"validdate1": 有限期限的开始日期
 *			"validdate2": 有效期限的终止日期）
 @param flag       正反面标示 0正面1反面
 @param cardImage  身份证图片
 @param ret  身份证识别结果：0成功、-1: 授权失败
 -2: 输入参数错误 -3:图像模糊或身份证所占尺寸过小。要求图像中身 份证的长宽应大于 400x350
 -4:其他错误
 */
typedef void(^CWIDCardRecogniseBlock)(int ret,NSDictionary * dict,CWIDCardType flag,UIImage * cardImage);

/**
 获取身份证头像block
 
 @param idFaceImage     身份证头像图片
 @param faceImagewidth  身份证头像宽
 @param faceImageHeight 身份证头像高
 */
typedef void(^CWGetFaceImageBlock)(UIImage * idFaceImage,int faceImagewidth,int faceImageHeight);

@interface CloudwalkIDCardOCR : NSObject

/**
 单例方法
 @return 返回该对象的实例
 */

+(id)sharInstance;


/**
 创建检测句柄
 
 @return 返回身份证检测句柄
 */
-(int)cwCreateIdCardRecog:(NSString *)lisence;


/**
 销毁身份证识别句柄
 
 @return 返回释放结果
 */
-(NSInteger)cwDestroyIdCardRecog;

/**
 身份证图像帧识别
 
 @param imageData    身份证检测接口返回的矫正图像数据
 @param width        身份证检测返回的图像宽
 @param height       身份证检测返回的图像高
 @param flag         身份证检测返回的身份证正反面标识
 @param block        识别结果返回
 */
-(void)cwDoIdcardRecog:(NSData *)imageData imageWidth:(int)width  imageWHeight:(int)height cardType:(CWIDCardType)flag completionBlock:(CWIDCardRecogniseBlock)block;


/**
 获取身份证头像
 
 @param detectImageData 身份证图像检测之后获取的图像数据
 @param width         身份证图像宽
 @param height        身份证图像高
 */
-(UIImage *)cwGetFaceImage:(NSData *)detectImageData imageWidth:(int)width imageHeight:(int)height;
/**
 获取身份证识别SDK版本号
 
 @return 返回版本号
 */
+(NSString *)cwGetVersion;


@end
